import OpenAI from 'openai';
import fs from 'node:fs'

const client = new OpenAI({
    apiKey: 'sk-AwwcMZ3jfGMjcgcqDkVptjuaJe63wOl70v4GQIolkDAMdQ9V',
    baseURL: 'https://api.302.ai/v1'
});

async function main() {
    const stream = await client.chat.completions.create({
        model: "gpt-4",
        // messages 数组就是上下文，如果基于之前聊的内容继续聊，那就把这些信息放到 message 数组里。
        // 这里 role 为 asssitant 就是 AI 说的内容，role 为 user 就是用户说的内容。
        messages: [
            { role: 'system', content: fs.readFileSync('./system.md', 'utf-8')},
            { role: 'user', content: '生成一个 Table 的 React 组件' },
            { role: 'assistant', content: fs.readFileSync('./response1.md', 'utf-8') },
            { role: 'user', content: '在这个基础上加上 sass 写下样式，并且不要用 table' }
        ],
        // stream: true
        tools: [
            {
              type: "function",
              function: {
                name: "getCode",
                description: "生成的组件代码",
                parameters: {
                  type: "object",
                  properties: {
                    code1: {
                      type: "string",
                      description: "生成的 index.ts 代码"
                    },
                    code2: {
                      type: "string",
                      description: "生成的 interface.ts 代码"
                    },
                    code3: {
                      type: "string",
                      description: "生成的 [组件名].tsx 代码"
                    },
                    code4: {
                      type: "string",
                      description: "生成的 styles.ts 代码"
                    },
                  },
                  required: ["code1", 'code2', 'code3', 'code4']
                }
              }
            },
          ],
    });
    console.log(stream.choices[0].message.tool_calls[0].function)
}
main();